var ajaxEndereco = true;

function ajaxGetEndereco(e, usuario) {
	var code = (e.keyCode ? e.keyCode : e.which);

	//Valida o ctrl + v
	var vKey = 86;
	
	// Sempre que usar ctrl+v libera o ajax
	if(code == vKey) ajaxEndereco = true;
	
	// Apenas se a tecla for numero ou ctrl+v faz o ajax
	if ((code >= 48 && code <= 57) || (code >= 96 && code <= 105) || (code == vKey)) {

		if ($("#" + usuario + "cep").val().indexOf("_") < 0
				&& $("#" + usuario + "cep").val().length == 9
				&& ajaxEndereco) {
			
			ajaxEndereco = false;

			$(".loading").show();
			$('.fieldvalidate').css("border-color", "#CCC");
			$('.errormessage').hide();

			// Busca o endereco completo
			$.ajax({
				type : "POST",
				url : "/ajaxBuscarLocalizacao",
				dataType : "json",
				data : "cep=" + $('#' + usuario + 'cep').val(),
				success : function(response) {
					
					for (i in response) {
						
						$('#' + usuario + 'id_endereco').val(
								response[i].id);
						$('#' + usuario + 'endereco').val(
								response[i].endereco);
						$('#' + usuario + 'bairro').val(
								response[i].bairro);
						$('#' + usuario + 'cidade').val(
								response[i].cidade);
						$('#' + usuario + 'estado').val(
								response[i].estado);
					}
					$(".loading").hide();
				},
				error : function(xhr, ajaxOptions, thrownError) {
					alert("CEP não encontrado");
					$(".loading").hide();
				}
			});
		}
	}
		
	if($("#" + usuario + "cep").val().indexOf("_") >= 0) ajaxEndereco = true;
	
}


function goToStep(step, scroll) {
	//Remove mensagem de erro e borda vermelha
	$('.fieldvalidate').css("border-color", "#CCC");
	$('.errormessage').hide();

	$(".step").hide();
	$("#step" + step).show();
	if (scroll)
		$('html, body').animate({
			scrollTop : $("#divtop").offset().top
		}, 500);

}

function validaCriacaoImovelSemCadastro() {

	var preco = ($("#preco").val() == "") ? 0 : $("#preco").val().replace(',',
			'').replace('.', '');
	var numero = ($("#numero").val() == "") ? 0 : $("#numero").val();

	zeraCamposCadastroImovel();

	$.ajax({
		type : "POST",
		url : "validarCriacaoImovel",
		async : false,
		dataType : "json",
		data : "titulo=" + $('#titulo').val() + "&preco=" + preco
				+ "&endereco.id=" + $('#id_endereco').val() + "&numero="
				+ numero,
		success : function(response) {
			//getLatLngSemCadastro(encodeURIComponent($("#endereco").val() + " " + $("#numero").val() + ", " + $("#cidade").val() + ", " + $("#estado").val()));
			goToStep(2, true);
		},
		error : function(xhr, ajaxOptions, thrownError) {
			var err = eval("(" + xhr.responseText + ")");
			showError(err);
		}
	});

}

function getLatLngSemCadastro(local){
	
	$.ajax({
		type : "GET",
		url : "http://maps.googleapis.com/maps/api/geocode/json?address="+local+"&sensor=false",
		dataType : "json",
		success : function(response) {
			for (i in response.results) {
				$('#lat').val(response.results[i].geometry.location.lat);
				$('#lng').val(response.results[i].geometry.location.lng);
			}
			goToStep(2, true);
		},
		error : function(xhr, ajaxOptions, thrownError) {
			alert("Não foi possivel encontrar lat e long");
		}
	});
	
}

function validaCriacaoImovelUsuarioCadastrado() {

	var preco = ($("#preco").val() == "") ? 0 : $("#preco").val().replace(',',
			'').replace('.', '');
	var numero = ($("#numero").val() == "") ? 0 : $("#numero").val();
	
	zeraCamposCadastroImovel();

	$.ajax({
		type : "POST",
		url : "validarCriacaoImovel",
		async : false,
		dataType : "json",
		data : "titulo=" + $('#titulo').val() + "&preco=" + preco
				+ "&endereco.id=" + $('#id_endereco').val() + "&numero="
				+ numero,
		success : function(response) {
			//getLatLngUsuarioCadastrado(encodeURIComponent($("#endereco").val() + " " + $("#numero").val() + ", " + $("#cidade").val() + ", " + $("#estado").val()));
			$('#form').submit();
		},
		error : function(xhr, ajaxOptions, thrownError) {
			var err = eval("(" + xhr.responseText + ")");
			showError(err);
		}
	});

}

function getLatLngUsuarioCadastrado(local){
	
	$.ajax({
		type : "GET",
		url : "http://maps.googleapis.com/maps/api/geocode/json?address="+local+"&sensor=false",
		dataType : "json",
		success : function(response) {
			for (i in response.results) {
				$('#lat').val(response.results[i].geometry.location.lat);
				$('#lng').val(response.results[i].geometry.location.lng);
			}
			$('#form').submit();
		},
		error : function(xhr, ajaxOptions, thrownError) {
			alert("Não foi possivel encontrar lat e long");
		}
	});
	
}

function zeraCamposCadastroImovel(){
	if ($("#areaTotal").val() == "" || $("#areaTotal").val() == null) {
		$("#areaTotal").val("0");
	}
	if ($("#areaUtil").val() == "" || $("#areaUtil").val() == null) {
		$("#areaUtil").val("0");
	}
	if ($("#banheiros").val() == "" || $("#banheiros").val() == null) {
		$("#banheiros").val("0");
	}
	if ($("#dormitorios").val() == "" || $("#dormitorios").val() == null) {
		$("#dormitorios").val("0");
	}
	if ($("#suites").val() == "" || $("#suites").val() == null) {
		$("#suites").val("0");
	}
	if ($("#vagasGaragem").val() == "" || $("#vagasGaragem").val() == null) {
		$("#vagasGaragem").val("0");
	}
	if ($("#idadeImovel").val() == "" || $("#idadeImovel").val() == null) {
		$("#idadeImovel").val("0");
	}
	if ($("#valorIPTU").val() == "" || $("#valorIPTU").val() == null) {
		$("#valorIPTU").val("0");
	}
	if ($("#valorCondominio").val() == ""
			|| $("#valorCondominio").val() == null) {
		$("#valorCondominio").val("0");
	}
}

function validarCriacaoUsuario() {

	var numero = ($("#usuarionumero").val() == "") ? 0 : $("#usuarionumero").val();
	var tipoPessoa = ($('#tipopessoapf').is(":checked")) ? 'PF' : 'PJ';

	$.ajax({
		type : "POST",
		url : "validarCriacaoUsuario",
		async : false,
		dataType : "json",
		data : "nome=" + $('#nome').val()
				+ "&cpf=" + $('#cpf').val() + "&nomeFantasia="
				+ $('#nomeFantasia').val() + "&cnpj=" + $('#cnpj').val()
				+ "&endereco.id=" + $('#usuarioid_endereco').val() + "&numero="
				+ numero + "&email=" + $('#email').val() + "&senha="
				+ $('#form #senha').val() + "&tipoPessoa="
				+ tipoPessoa,
		success : function(response) {
			$('#form').submit();
		},
		error : function(xhr, ajaxOptions, thrownError) {
			var err = eval("(" + xhr.responseText + ")");
			showError(err);
		}
	});
}

function validaPlano() {
	if ($('#idPlano').val() == "" || $('#idPlano').val() == null) {
		alert("Selecione um plano");
	} else {
		//Verifica se eh PJ
		//Se for abre o mapa para lat lng
		if ($("#tipopessoapj").is(":checked")) {
			$("#area_map_pj").show();
		}else{
			$("#area_map_pj").hide();
		}
		
		goToStep(3, true);
		
		//codigo abaixo para arrumar o bug de iniciar o mapa em div hidden (fica cinza)
		/*google.maps.event.trigger(map_pj, 'resize');
		map_pj.setZoom( map_pj.getZoom() - 1 );
		map_pj.setZoom( map_pj.getZoom() + 1 );
		map_pj.setCenter(new google.maps.LatLng(-14.604847, -47.197266));*/
		map_pj = new google.maps.Map(document.getElementById("map_pj"), mapOptions);
	}
}

function showError(err) {
	for (i in err) {
		$('#' + err[i].dataField + "-error").html(err[i].errorMessage);

		$('.fieldvalidate').css("border-color", "#CCC");
		$('.errormessage').hide();

		$('#form #' + err[i].dataField).focus();
		$('#form #' + err[i].dataField).css("border-color", "#C00");
		$('#' + err[i].dataField + "-error").show();
	}
}

function corrigirFormatoPreco() {

	$("#preco").val($("#preco").val().replace(',', '').replace('.', ''));

	return true;
}

function corrigirCamposBusca() {

	if ($("#preco_de").val() == "" || $("#preco_de").val() == null) {
		$("#precoDe").val("-1");
	}else{
		$("#precoDe").val($("#preco_de").val().replace(',', '').replace('.', ''));
	}
	
	if ($("#preco_ate").val() == "" || $("#preco_ate").val() == null) {
		$("#precoAte").val("-1");
	}else{
		$("#precoAte").val($("#preco_ate").val().replace(',', '').replace('.', ''));
	}
	
	if ($("#areaMin").val() == "" || $("#areaMin").val() == null) {
		$("#area").val("0");
	}

	return true;
}

function validaCorretor(){
	
	$.ajax({
		type : "POST",
		url : "/ajaxValidarCadastroCorretor",
		dataType : "json",
		data : "nome=" + $('#nome').val()
				+ "&email=" + $('#email').val(),
		success : function(response) {
			$('#form').submit();
		},
		error : function(xhr, ajaxOptions, thrownError) {
			var err = eval("(" + xhr.responseText + ")");
			showError(err);
		}
	});
}

function alterarStatusImovel(id, status){
	$.ajax({
		type : "POST",
		url : "/memberArea/ajaxAlterarStatusImovel",
		dataType : "json",
		data : "id=" + id
				+ "&status=" + status,
		success : function(response) {
			for(i in response){
				$('#status'+id).html((response[i].newStatus));
			}
		},
		error : function(xhr, ajaxOptions, thrownError) {
			alert("Não foi possível alterar o status do imóvel");
		}
	});
}

function buscaCidades(estadoUF){
	
	if(estadoUF != "")
		$("#cidade").html('<option value="">Buscando...</option>');
	else
		$("#cidade").html('<option value=""></option>');
	$("#bairro").html('<option value=""></option>');
	
	if(estadoUF != "")
		$.ajax({
			type : "POST",
			url : "/ajaxGetCidades",
			dataType : "json",
			data : "estadoUF=" + estadoUF,
			success : function(response) {
				
				$("#cidade").html('<option value="">Todas</option>');
				
				$.each(response, function(key, cidade) {
					$("#cidade").append('<option value="'+cidade.nomeURL+'">'+cidade.nome+'</option>');
				});
				
			},
			error : function(xhr, ajaxOptions, thrownError) {
				alert("Ocorreu um erro na busca");
			}
		});
}

function buscaBairros(cidadeURL){
	
	var estadoUF = $("#estado").val();
	
	if(cidadeURL != "")
		$("#bairro").html('<option value="">Buscando...</option>');
	else
		$("#bairro").html('<option value=""></option>');
	
	if(cidadeURL != "")
		$.ajax({
			type : "POST",
			url : "/ajaxGetBairros",
			dataType : "json",
			data : "estadoUF=" + estadoUF +
					"&cidadeURL=" + cidadeURL,
			success : function(response) {
				
				$("#bairro").html('<option value="">Todos</option>');
				
				$.each(response, function(key, bairro) {
					$("#bairro").append('<option value="'+bairro.nomeURL+'">'+bairro.nome+'</option>');
				});
				
			},
			error : function(xhr, ajaxOptions, thrownError) {
				alert("Ocorreu um erro na busca");
			}
		});
}